package org.jeecg.modules.zhoupackage.pojo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 产品表
 *
 * @author zxl
 * @since 20201008
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class MlccProductInfo {

    /**
     * 部门ID
     */
    @TableField(exist = false)
    private String deptid;

    /**
     * 模板编号
     */
    private String templateSn;

    /**
     * 主键id
     */
    private String id;

    /**
     * 产品名称
     */
    private String productName;

    /**
     * 产品图片
     */
    private String productImg;

    /**
     * 产品货号
     */
    private String productCode;

    /**
     * 默认0男装，1女装
     */
    private Integer sex;

    /**
     * 产品类型：0个订产品，1从现货中定制(现货款)，2团体高定（定制款）
     */
    private Integer productType;

    /**
     * 折扣价格
     */
    private BigDecimal zhehouPrice;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 现货的商品id
     */
    private String goodsid;

    /**
     * 折前价格
     */
    private BigDecimal zheqianPrice;

    /**
     * 类别ids,多个逗号隔开
     */
    private String categoryIds;

    /**
     * 驳宽id
     */
    private String bokuan;

    /**
     * 珠边宽度id
     */
    private String zhubianWidth;

    /**
     * 面料ids,多个逗号隔开
     */
    private String fabricIds;

    /**
     * 订单号
     */
    private String orderSn;

    /**
     * 状态：默认0正常，1假删除
     */
//    @TableLogic
    private Integer status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新人员
     */
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 部门编码
     */
    private String sysOrgCode;

    /**
     * 绣字类型
     */
    private String xiuziType;

    /**
     * 绣字位置
     */
    private String xiuziWeizhi;

    /**
     * 绣字图片
     */
    private String xiuziImg;

    /**
     * 绣字颜色
     */
    private String xiuziColor;

    /**
     * 绣字高度
     */
    private String xiuziHeight;

    /**
     * 高度名称
     */
    @TableField(exist = false)
    private String height;

    /**
     * 自定义图片
     */
    private String zidingyiImg;

    /**
     * 绣字字体
     */
    private String xiuziZiti;

    /**
     * 绣字第一行内容
     */
    private String xiuziOneNeirong;

    /**
     * 绣字第二行内容
     */
    private String xiuziTwoNeirong;

    /**
     * 撞色Id,多个以逗号隔开
     */
    private String zhuangseIds;

    /**
     * 纽扣IDS
     */
    private String buttonsIds;

    /**
     * 绣字类型价格id
     */
    private String xiuziPriceId;

    /**
     * 尺寸表Ids
     */
    private String bodySizeIds;

    /**
     * 尺寸表Ids+输入的值，以逗号隔开（包含净体尺寸）
     */
    private String oldbodySizeIds;

    /**
     * 体型表IDS
     */
    private String sizeIds;

    /**
     * 量体备注
     */
    private String liangtiRemark;


    /**
     * 量体图片,多个以逗号隔开
     */
    private String liangtiImgs;

    /**
     * 里布id
     */
    private String libuId;

    /**
     * 低领尼id
     */
    private String dilinliId;

    /**
     * 面料数据
     */
    @TableField(exist = false)
    private List<MlccFabricInfo> fabricInfoList;

    /**
     * 款式与工艺
     */
    @TableField(exist = false)
    private List<MlccCategoryInfo> categoryInfo;

    /**
     * 撞色数据
     */
    @TableField(exist = false)
    private List<MlccContrastcolorInfo> contrastcolorList;

    /**
     * 客户折扣
     */
    @TableField(exist = false)
    private double khzk;

    /**
     * 折后单价
     */
    @TableField(exist = false)
    private double afterzhekouPrice;

    /**
     * 总金额
     */
    @TableField(exist = false)
    private double allPrice;

    /**
     * 产品数量
     */
    private Integer numbers;

    /**
     * 前端展示的品类版型
     */
    @TableField(exist = false)
    private List<MlccCategoryInfo> plbx;

    /**
     * 面料、里布列表
     */
    @TableField(exist = false)
    private List<MlccFabricInfo> fabricList;

    /**
     * 前端展示的款式工艺
     */
    @TableField(exist = false)
    private List<MlccCategoryInfo> ksgy;

    /**
     * 产品中的所有撞色数据
     */
    @TableField(exist = false)
    private List<MlccContrastcolorInfo> allConColor;

    /**
     * 关联的具体身体数据
     */
    @TableField(exist = false)
    private Set<MlccProductBodysize> productBodySizeList;

    /**
     * 关联的具体身体数据 成衣尺寸
     */
    @TableField(exist = false)
    private List<MlccProductBodysize> cheng;

    /**
     * 关联的具体身体数据 净体尺寸
     */
    @TableField(exist = false)
    private List<MlccProductBodysize> jing;

    /**
     * 纽扣列表
     */
    @TableField(exist = false)
    private List<MlccButtonsInfo> buttonsInfoList;

    /**
     * 尺寸列表
     */
    @TableField(exist = false)
    private List<MlccSizeInfo> sizeInfoList;

    /**
     * 绣字颜色实体类
     */
    @TableField(exist = false)
    private MlccEmbroideredColor xiuziColorEntity;

    /**
     * 绣字字体实体类
     */
    @TableField(exist = false)
    private MlccEmbroideredFont font;

    /**
     * 品类名称
     */
    @TableField(exist = false)
    private String pingleiName;

    /**
     * 工艺名称
     */
    @TableField(exist = false)
    private String gyname;

    /**
     * 式样
     */
    private String shiyang;

    /**
     * 改款打样
     */
    private String modifiedYang;

    /**
     * 紧急指数
     */
    private String emergency;

    /**
     * 供应商id
     */
    private String gysId;

    /**
     * 附加条件ids
     */
    private String fujiaids;

    /**
     * 供应商名称
     */
    @TableField(exist = false)
    private String gysName;

    /**
     * 附加条件的价格
     */
    private BigDecimal fujiaPrice;

    /**
     * 面料结算金额
     */
    private BigDecimal fabricSettleMoney;

    /**
     * 默认0未对账，1已对账
     */
    private Integer isDuizhang;

    /**
     * 是否发货，默认：0未发货，1已发货
     */
    private Integer isOut;

    /**
     * 面料备注
     */
    private String fabricRemark;

    /**
     * 里布
     */
    @TableField(exist = false)
    private String libuName;

    /**
     * 低领尼
     */
    @TableField(exist = false)
    private String dilinniName;

    /**
     * 纽扣
     */
    @TableField(exist = false)
    private String buttonName;

    /**
     * 里布对象
     */
    @TableField(exist = false)
    private MlccMaterialLibuInfo libuInfo;

    /**
     * 低领尼对象
     */
    @TableField(exist = false)
    private MlccDilinniInfo dilinniInfo;

    /**
     * 小产品标准尺码名称
     */
    @TableField(exist = false)
    private String standardSize;

    /**
     * 小产品量体尺寸
     */
    @TableField(exist = false)
    private List<String> imgs;

    /**
     * 小产品编号
     */
    @TableField(exist = false)
    private String smallCode;

    /**
     * 客户姓名
     */
    @TableField(exist = false)
    private String customerName;

    /**
     * 产品的面料编号
     */
    @TableField(exist = false)
    private String fabricCode;

    /**
     * 查询定制项的信息
     */
    @TableField(exist = false)
    Map<String, String> categoryMap;

    /**
     * 获取净体尺寸名称
     */
    @TableField(exist = false)
    List<String> stringList;

    /**
     * 获取净体尺寸键值对
     */
    @TableField(exist = false)
    Map<String, String> jingSizeNameAndValue;

    /**
     * 获取成衣尺寸键值对
     */
    @TableField(exist = false)
    Map<String, String> chengyiSizeNameAandValue;
}
